package com.example.designmode.bridge

import org.junit.Test


/**
 * 桥接模式连接两个可变化的维度
 * 桥接（Bridge）是用于把抽象化与实现化解耦，使得二者可以独立变化。多个维度的量进行变化。
 *
 * @author zhouronghua
 * @time 2022/3/10 4:03 下午
 */
class Client {

    @Test
    fun testVideoPlay() {
        // 创建Mac设备
        val macOS = MacOS()
        // 创建视频文件对象
        val aviFile = AVIFile()
        macOS.videoFile = aviFile
        // Mac播放AVI文件
        macOS.play("战狼")
        // 播放Rmvb格式的视频
        println("MacOS测试播放RMVB格式视频")
        val rmvbFile = RmvbFile()
        macOS.videoFile = rmvbFile
        macOS.play("芳华")
        // Windows系统播放
        println("WindowsOS测试播放RMVB格式视频")
        val windowsOS = WindowsOS()
        windowsOS.videoFile = rmvbFile
        windowsOS.play("天下第一")
    }
}